home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / DCHEX.z / DCHEX
Text File  |  1996-03-14  |  5KB  |  199 lines

  1.  
  2.  
  3.  
  4. DDDDCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            DDDDCCCCHHHHEEEEXXXX((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DCHEX   - DCHEX updates the Cholesky factorization
  10.  
  11.         A = TRANS(R)*R
  12.  
  13.      of a positive definite matrix A of order P under diagonal permutations of
  14.      the form
  15.  
  16.         TRANS(E)*A*E
  17.  
  18.      where E is a permutation matrix.  Specifically, given an upper triangular
  19.      matrix R and a permutation matrix E (which is specified by K, L, and
  20.      JOB), DCHEX determines an orthogonal matrix U such that
  21.  
  22.         U*R*E = RR,
  23.  
  24.      where RR is upper triangular.  At the users option, the transformation U
  25.      will be multiplied into the array Z.  If A = TRANS(X)*X, so that R is the
  26.      triangular part of the QR factorization of X, then RR is the triangular
  27.      part of the QR factorization of X*E, i.e. X with its columns permuted.
  28.      For a less terse description of what DCHEX does and how it may be
  29.      applied, see the LINPACK guide.
  30.  
  31.      The matrix Q is determined as the product U(L-K)*...*U(1) of plane
  32.      rotations of the form
  33.  
  34.         (    C(I)       S(I) )
  35.         (                    ) ,
  36.         (    -S(I)      C(I) )
  37.  
  38.      where C(I) is double precision.  The rows these rotations operate on are
  39.      described below.
  40.  
  41.      There are two types of permutations, which are determined by the value of
  42.      JOB.
  43.  
  44.      1. Right circular shift (JOB = 1).
  45.  
  46.         The columns are rearranged in the following order.
  47.  
  48.         1,...,K-1,L,K,K+1,...,L-1,L+1,...,P.
  49.  
  50.         U is the product of L-K rotations U(I), where U(I)
  51.         acts in the (L-I,L-I+1)-plane.
  52.  
  53.      2. Left circular shift (JOB = 2).
  54.         The columns are rearranged in the following order
  55.  
  56.         1,...,K-1,K+1,K+2,...,L,K,L+1,...,P.
  57.  
  58.         U is the product of L-K rotations U(I), where U(I)
  59.         acts in the (K+I-1,K+I)-plane.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            DDDDCCCCHHHHEEEEXXXX((((3333FFFF))))
  71.  
  72.  
  73.  
  74. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  75.       SUBROUTINE DCHEX(R,LDR,P,K,L,Z,LDZ,NZ,C,S,JOB)
  76.  
  77. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  78.      On Entry
  79.  
  80.      RRRR DOUBLE PRECISION(LDR,P), where LDR .GE. P.
  81.         R contains the upper triangular factor
  82.         that is to be updated.  Elements of R
  83.         below the diagonal are not referenced.
  84.  
  85.      LLLLDDDDRRRR INTEGER.
  86.         LDR is the leading dimension of the array R.
  87.  
  88.      PPPP INTEGER.
  89.         P is the order of the matrix R.
  90.  
  91.      KKKK INTEGER.
  92.         K is the first column to be permuted.
  93.  
  94.      LLLL INTEGER.
  95.         L is the last column to be permuted.
  96.         L must be strictly greater than K.
  97.  
  98.      ZZZZ DOUBLE PRECISION(LDZ,N)Z), where LDZ .GE. P.
  99.         Z is an array of NZ P-vectors into which the
  100.         transformation U is multiplied.  Z is
  101.         not referenced if NZ = 0.
  102.  
  103.      LLLLDDDDZZZZ INTEGER.
  104.         LDZ is the leading dimension of the array Z.
  105.  
  106.      NNNNZZZZ INTEGER.
  107.         NZ is the number of columns of the matrix Z.
  108.  
  109.      JJJJOOOOBBBB INTEGER.
  110.         JOB determines the type of permutation.
  111.         JOB = 1  right circular shift.
  112.         JOB = 2  left circular shift.  On Return
  113.  
  114.      RRRR contains the updated factor.
  115.  
  116.      ZZZZ contains the updated matrix Z.
  117.  
  118.      CCCC DOUBLE PRECISION(P).
  119.         C contains the cosines of the transforming rotations.
  120.  
  121.      SSSS DOUBLE PRECISION(P).
  122.         S contains the sines of the transforming rotations.  LINPACK.  This
  123.      version dated 08/14/78 .  G. W. Stewart, University of Maryland, Argonne
  124.      National Lab.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DDDDCCCCHHHHEEEEXXXX((((3333FFFF))))                                                            DDDDCCCCHHHHEEEEXXXX((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      DDDDCCCCHHHHEEEEXXXX uses the following functions and subroutines. BLAS DROTG Fortran
  141.      MIN0
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.